1. Field
The invention relates to the field of booting computer systems and, more particularly, to booting computer systems remotely.
2. Background Information
Booting is the process of placing a computer system under the control of a software program. A computer system, as defined herein, is any device with a processor capable of executing instructions. For example, personal computers, desktop computers, server computers, hand-held computers and information appliances are all examples of computer systems as defined herein.
Often, the software program to boot comprises an operating system. One function of an operating system may be to manage various resources of the computer system, such as memory and interrupts. The booted program need not be an operating system. For example, the program could be a sequence of instructions whose primary purpose is to provide diagnostics of various components of the computer system, such as the processor and hard disks, for example.
Booting may be typically accomplished by either powering on the computer system, or resetting the computer system to an initial state. A power-on self test (POST) may then be performed to diagnose and initialize resources, such a s random access memory (RAM), before transferring control to the computer system""s basic input/output system (BIOS). The program to boot may be read by the BIOS from a location in nonvolatile memory (such as a hard disk) into RAM. This is called xe2x80x9cloadingxe2x80x9d the program. Once the program is loaded, control may be transferred to the program by jumping to an initial instruction within the program. From this initial instruction, the program may begin executing on the processor.
Multiple programs may be made available for booting. For example, a comput er system may comprise multiple hard disks. Each hard disk may comprise multiple, logical areas known as partitions. Each partition may comprise a program to boot and an area known as a master boo t record (MBR). The MBR may contain signals in the form of bits which the BIOS may apply to determine how to load and transfer control to the program to boot.
It may be desirable to perform remote booting of the computer system. Remote booting typically involves exchanging signals with the computer system over an external communications channel in order to initiate the booting of a program by the computer system. The external channel may be embodied in numerous ways. For example, the external channel may comprise a coupling to a local area network, or to the Internet. The external channel may comprise a coupling to the public telephone network using a data modem, or a coupling to a cable television network using a cable modem. Alternatively, the external channel may comprise a coupling to a satellite system by way of a satellite transceiver. These are only some of the many possibilities for an external channel. The signals to initiate booting may be transmitted over the external channel by a remote device. The remote device may comprise another computer system or a dumb terminal, among many possibilities.
As the complexity of computer systems increases, it becomes increasingly desirable to boot computer systems remotely in order, for example, to place a diagnostic to program in control of the system for purposes of remote troubleshooting.
In accordance with one aspect of the present invention, a remote boot signal and a program type signal are read from a memory of a computer system where they were written by way of an external channel. A program identified by the program type signal is booted.